Docker OverlayFS

适用于版本日期20210710。

OverlayFS是一个现代的union filesystem,相较AUFS更加简单高效。Docker提供了两个版本:overlay和overlay2(推荐)。

overlay2在inode使用上更加高效。

1 要求

  • overlay要求内核版本>=3.18,overlay2要求Linux内核版本>=4, 或者RHEL和CentOS内核>=3.10.0-514, 否则只能使用overlay。

    1
    2
    # 查看Linux内核版本
    uname -srm
  • 支持xfs backing filesystem,但仅在d_type=true时启用。未设置true时将跳过,且抛出异常。

    使用xfs_info验证ftype是否为1.

  • 变更存储驱动将导致本地文件系统中的容器和镜像不可用,需要提前云端存储。

2 配置

推荐使用overlay2,overlay同理。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 停止Docker
sudo systemctl stop docker
# 备份已有配置
cp -au /var/lib/docker /var/lib/docker.bk
# 如要配置/var/lib使用独立的backing filesystem, 挂载到/var/lib/docker并确保添加到/etc/fstab中永久生效。
# 创建或编辑文件/etc/docker/daemon.json
{
"storage-driver": "overlay2"
}
# 启动Docker
systemctl start docker
# 验证配置,查看存储驱动项和Backing filesystem。
docker info
# 将会自动创建若干文件和目录

3 原理

TODO

参考资料